package gm;

trait TypeFuns {
  trait TypeFun1 {type a}
  type app1[tf <: TypeFun1, aa] = tf{type a=aa}
  
  trait TypeFun2 {type a; type b}
  type app2[tf <: TypeFun2, aa, bb] = tf{type a=aa;type b=bb}
}